package alg;
import data.UserRating;
import exception.*;

public abstract class Algorithm {
	protected DataManager datamanager;

	public void setDatamanager(DataManager datamanager) {
		this.datamanager = datamanager;
	}

	public DataManager getDatamanager() {
		return datamanager;
	}
	
	public abstract void init() throws AlgorithmException,DataManagerException;
	
	public abstract UserRating predictRating(int UserID,int ProfileId) throws AlgorithmException,DataManagerException;
	
	public abstract UserRating[] predictRatings(int UserID,boolean all) throws AlgorithmException,DataManagerException;
	
	public abstract UserRating[] predictScores(int ProfileID,boolean all) throws AlgorithmException,DataManagerException;
}
